「你好,我的電腦壞了。」
這句話,大概是每位 MIS 都會遇到的經典開場。
沒有錯誤訊息、沒有發生時間,也沒有說明剛才做過什麼。唯一能確定的事情,就是使用者現在不能工作,而且他希望你立刻理解整件事。
對使用者來說,「電腦壞了」可能代表:
甚至還可能只是鍵盤的 Num Lock 沒有開。
如果每次聽到「電腦壞了」就立刻帶著工具衝去現場,很快便會發現,自己每天都在公司裡來回走動,步數很多,問題卻沒有比較快解決。
因此,排錯的第一步不是碰設備,而是先把模糊的描述轉換成可以驗證的技術問題。
使用者通常會用操作結果描述問題。
例如:
「網路不能用。」
但實際情況可能是:
使用者不需要知道 DHCP、DNS 或 AD 的差異。他只知道自己按下按鈕後,原本應該出現的東西沒有出現。
我們的工作不是糾正對方的術語,而是把這些描述翻譯成技術上能夠調查的現象。
比起問「到底哪裡壞了」,更有效的方法是請使用者重新操作一次。
「可以請你從頭操作一次,讓我看問題出現在哪個步驟嗎?」
這個動作能幫助我們確認:
有些事件只要看一次,就能立刻縮小範圍。
例如使用者說「印表機壞了」,實際示範後才發現,他選到另一個樓層的印表機;又或者使用者說「系統不能登入」,畫面真正顯示的卻是「此帳號沒有存取權限」。
兩者的處理方向完全不同。
前者是操作或設定問題,後者才需要往帳號與權限調查。
如果沒有先看實際畫面,很容易根據一句不完整的描述,開始修一個根本不存在的問題。
「跳出一個 Error」幾乎等於沒有資訊。
錯誤訊息通常包含很重要的線索,例如:
因此,不要只記錄「登入失敗」,而要記下完整訊息。
例如:
The user name or password is incorrect.
和:
The referenced account is currently locked out.
雖然使用者看到的結果都是不能登入,但前者可能是帳密輸入錯誤,後者則是帳號已被鎖定。
網路連線也是如此。Request timed out 、 Destination host unreachable 和 Connection refused 看起來都像連不上,背後意義卻不同:
最簡單的做法是直接截圖,並記錄發生時間。不要只靠手抄或記憶,因為人類大腦在報修現場,常常會自動把關鍵字忘掉,只留下「反正就是紅色的」。
時間點能幫助我們找出問題前後發生過哪些變更。
可以詢問:
如果使用者表示「昨天還可以,今天早上開始不行」,就能進一步比對:
如果問題每天中午固定出現,則可能與尖峰流量、排程工作或備份有關。
沒有時間點,設備上的 Log 就像一片沒有路標的森林;知道問題大約發生在 10:15,我們才有辦法集中查看那段時間附近的紀錄。
影響範圍是排錯最有價值的線索之一。
假設某位使用者無法存取內部網站:
優先檢查:
優先檢查:
優先檢查:
如果只有一個人不能列印,就不用一開始重啟整台 Print Server;如果全公司都無法登入同一套系統,也沒必要在某位使用者的電腦上重裝應用程式。
影響範圍能快速決定我們應該查端點、區域設備,還是共用服務。
這也是為什麼「其他人可以嗎?」通常比「你有沒有重新開機?」更值得先問。
排錯需要對照組。
我們可以改變其中一個條件,觀察結果是否不同:
例如:
問題比較可能與帳號、權限或後端系統有關。
代表電腦與網路大致正常,問題可能集中在原帳號。
問題可能出在 DNS 或其他名稱解析機制。
問題範圍可能落在無線認證、SSID、AP、無線 VLAN 或訊號環境。
對照測試的重點是一次只更換一個條件。
如果同時換電腦、換帳號、換網路又換瀏覽器,就算突然能用了,也不知道是哪一項造成差異。看似測了很多,實際上證據全部混在一起,蠻虧的。
詢問問題時,也要避免把自己的猜測塞進問題裡。
例如:
「是不是更新 Windows 之後才壞掉的?」
這句話會讓使用者開始回想 Windows Update,即使兩者可能毫無關係。比較好的問法是:
「問題發生前,有安裝軟體、更新系統或修改任何設定嗎?」
先讓使用者自由描述,再透過具體問題確認細節。
同樣地,不要一開始就問:
「是不是 DNS 壞了?」
因為使用者可能根本不知道 DNS 是什麼,卻為了配合你而回答「應該是」。
排錯需要的是原始現象,不是經過我們暗示後產生的共同幻想。
下次收到模糊報修時,可以先問:
不一定每次都要像警察筆錄一樣全部問完。目標是取得足夠資訊,判斷下一步應該:
排錯並不是從輸入指令開始,而是從理解問題開始。
使用者說「電腦壞了」沒有錯,因為那就是他看到的現象;而我們的價值,在於把這句話逐步拆成設備、時間、範圍、錯誤、路徑與可驗證條件。
今天最重要的五個問題是:
問完這些問題,我們可能還不知道最終答案,但至少已經知道該從哪裡開始。
而這往往就是排錯過程中最關鍵的一步。